//package a02;
//
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.LinkedList;
//import java.util.List;
//
//import javax.swing.JFrame;
//
//public class Tournament {
//
//    private static enum Result {
//	Draw, Guest, Home
//    }
//
//    private List<TournamentPlayer> ps = new LinkedList<TournamentPlayer>();
//
//    private JFrame f = new JFrame();
//
//    static public void main(String[] args) throws Exception {
//	Tournament tor = new Tournament();
//	tor.readPlayer("tournament.xml");
//	System.out.println(tor.getPs());
//	tor.play();
//	System.out.println(tor.getPs());
//    }
//
//    public List<TournamentPlayer> getPs() {
//	return this.ps;
//    }
//
//    public void setPs(List<TournamentPlayer> ps) {
//	this.ps = ps;
//    }
//
//    public void play() {
//	for (TournamentPlayer p1 : this.ps) {
//	    for (TournamentPlayer p2 : this.ps) {
//		if (p1 != p2) {
//		    System.out.println(p1 + " gegen " + p2);
//
//		    Result result = this.play(p1, p2);
//		    if (result == Result.Draw) {
//			p1.setPoints(p1.getPoints() + 1);
//			p2.setPoints(p2.getPoints() + 1);
//		    } else if (result == Result.Home) {
//			p1.setPoints(p1.getPoints() + 3);
//		    } else {
//			p2.setPoints(p2.getPoints() + 3);
//		    }
//		    System.out.println(this.ps);
//		}
//	    }
//	}
//
//	Collections.sort(this.ps, new Comparator<TournamentPlayer>() {
//	    @Override
//	    public int compare(TournamentPlayer o1, TournamentPlayer o2) {
//		return o2.getPoints() - o1.getPoints();
//	    }
//	});
//    }
//
//    public Result play(TournamentPlayer home, TournamentPlayer guest) {
//
//	home.reset();
//	guest.reset();
//	Vier game = new Vier();
//	this.f.setVisible(true);
//
//	while (!game.ended()) {
//
//	    this.f.add(new RegularBoard<Byte>(game));
//	    this.f.pack();
//
//	    int n = home.getPlayer().nextMove();
//	    game = game.doMove((byte) n);
//	    guest.getPlayer().nextMove(n);
//
//	    if (game.wins()) {
//		return Result.Home;
//	    }
//	    if (game.noMoreMove()) {
//		return Result.Draw;
//	    }
//
//	    n = guest.getPlayer().nextMove();
//	    game = game.doMove((byte) n);
//	    this.f.add(new RegularBoard<Byte>(game));
//	    this.f.pack();
//	    home.getPlayer().nextMove(n);
//	    if (game.wins()) {
//		return Result.Guest;
//	    }
//	    if (game.noMoreMove()) {
//		return Result.Draw;
//	    }
//	}
//	return Result.Draw;
//    }
//
//    public void readPlayer(String fileName) throws Exception {
//	this.ps = TournamentReader.getInstance().read(fileName);
//    }
//}
